﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace JovensIPR.bean
{
    public class Address
    {
        #region [Attribute]
        private long handle;

        private string cep;

        private string logradouro;

        private int numero;

        private string bairro;

        private string complemento;

        public string Complemento
        {
            get { return complemento; }
            set { complemento = value; }
        }

        public string Bairro
        {
            get { return bairro; }
            set { bairro = value; }
        }

        public int Numero
        {
            get { return numero; }
            set { numero = value; }
        }

        public string Logradouro
        {
            get { return logradouro; }
            set { logradouro = value; }
        }

        public string Cep
        {
            get { return cep; }
            set { cep = value; }
        }

        public long Handle
        {
            get { return handle; }
            set { handle = value; }
        }
        #endregion

        #region [Public method]
        public string ValidationAttributesManatory()
        {
            string result = String.Empty;

            if (String.IsNullOrEmpty(this.bairro))
                result = MessageFailField("Bairro", TipoMessageField.Information);
            else if (String.IsNullOrEmpty(this.cep))
                result = MessageFailField("CEP", TipoMessageField.Information);
            else if (this.cep.Length != 8)
                result = "CEP incorreto, não possuí 8 dígitos.";
            else if (String.IsNullOrEmpty(this.complemento))
                result = MessageFailField("Complemento", TipoMessageField.Information);
            else if (String.IsNullOrEmpty(this.logradouro))
                result = MessageFailField("Logradouro", TipoMessageField.Information);
            else if (!(this.numero > 0))
                result = MessageFailField("Numero", TipoMessageField.Information);


            return result;
        }
        #endregion

        #region [Private method]
        private string MessageFailField(string local, TipoMessageField tipo)
        {
            string messageReturn = "{0} no campo \"{1}\" é obrigatória.";
            string message = String.Empty;

            switch (tipo)
            {
                case TipoMessageField.Information:
                    message = String.Format(messageReturn, "Digitação", local);
                    break;
                case TipoMessageField.Select:
                    message = String.Format(messageReturn, "Digitação", local);
                    break;
                default:
                    message = "O tipo de campo não foi encontrado.";
                    break;
            }

            return message;
        }
        #endregion

    }
}